Робот стартует из точки (0, 0) и смотрит на север. Команды повторяются бесконечно. Нужно определить:
👉Зациклится ли движение робота? (т.е. вернётся ли он в исходную точку или навсегда останется в замкнутом цикле)
📌Примеры:
isLooping("GLGLGLG") => true // движется по квадрату isLooping("GG") => false // уходит навсегда
🧩 Подвох задачи:
На первый взгляд кажется, что нужно бесконечно симулировать команды. Но на самом деле всё решается за один проход строки! Важно: если после одного прохода робот: - вернулся в (0,0) или - сменил направление — значит, будет цикл.
✅ Go-реализация:
```go func isLooping(commands string) bool { dirs := [][2]int{{0,1}, {1,0}, {0,-1}, {-1,0}} // север, восток, юг, запад x, y, d := 0, 0, 0
for _, c := range commands { switch c { case 'G': x += dirs[d][0] y += dirs[d][1] case 'L': d = (d + 3) % 4 case 'R': d = (d + 1) % 4 } }
return (x == 0 && y == 0) || d != 0 } ```
🎯 Отличная задача для собеседования: она проверяет • понимание направления и симуляции • знание работы с векторами • умение заменить бесконечный цикл на математический анализ
Робот стартует из точки (0, 0) и смотрит на север. Команды повторяются бесконечно. Нужно определить:
👉Зациклится ли движение робота? (т.е. вернётся ли он в исходную точку или навсегда останется в замкнутом цикле)
📌Примеры:
isLooping("GLGLGLG") => true // движется по квадрату isLooping("GG") => false // уходит навсегда
🧩 Подвох задачи:
На первый взгляд кажется, что нужно бесконечно симулировать команды. Но на самом деле всё решается за один проход строки! Важно: если после одного прохода робот: - вернулся в (0,0) или - сменил направление — значит, будет цикл.
✅ Go-реализация:
```go func isLooping(commands string) bool { dirs := [][2]int{{0,1}, {1,0}, {0,-1}, {-1,0}} // север, восток, юг, запад x, y, d := 0, 0, 0
for _, c := range commands { switch c { case 'G': x += dirs[d][0] y += dirs[d][1] case 'L': d = (d + 3) % 4 case 'R': d = (d + 1) % 4 } }
return (x == 0 && y == 0) || d != 0 } ```
🎯 Отличная задача для собеседования: она проверяет • понимание направления и симуляции • знание работы с векторами • умение заменить бесконечный цикл на математический анализ
I have no inside knowledge of a potential stock listing of the popular anti-Whatsapp messaging app, Telegram. But I know this much, judging by most people I talk to, especially crypto investors, if Telegram ever went public, people would gobble it up. I know I would. I’m waiting for it. So is Sergei Sergienko, who claims he owns $800,000 of Telegram’s pre-initial coin offering (ICO) tokens. “If Telegram does a SPAC IPO, there would be demand for this issue. It would probably outstrip the interest we saw during the ICO. Why? Because as of right now Telegram looks like a liberal application that can accept anyone - right after WhatsApp and others have turn on the censorship,” he says.
Telegram Auto-Delete Messages in Any Chat
Some messages aren’t supposed to last forever. There are some Telegram groups and conversations where it’s best if messages are automatically deleted in a day or a week. Here’s how to auto-delete messages in any Telegram chat. You can enable the auto-delete feature on a per-chat basis. It works for both one-on-one conversations and group chats. Previously, you needed to use the Secret Chat feature to automatically delete messages after a set time. At the time of writing, you can choose to automatically delete messages after a day or a week. Telegram starts the timer once they are sent, not after they are read. This won’t affect the messages that were sent before enabling the feature.